package com.nbst.controller.base;

import java.util.Map;

import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.nbst.comnutil.NormalResult;
import com.nbst.comnutil.Tools;
import com.nbst.model.base.Button;
import com.nbst.model.base.User;
import com.nbst.service.base.IButtonService;

/**
 * @ClassName: ButtonController
 * @Description:按钮权限的接口
 * @author King
 * @date 2018年11月7日
 * 
 */
@RestController
@RequestMapping(("/button"))
public class ButtonController {
	@Autowired
	IButtonService buttonService;
	
	/**
	 * 查询按钮
	 * 
	 * @param record
	 * @param offset
	 * @param row
	 * @return NormalResult
	 * @author King
	 * @date 2018年11月7日
	 */
	@GetMapping("/findByCondition.action")
	public NormalResult findByCondition(Button record,
			@RequestParam(required = false, defaultValue = "1") Integer offset,
			@RequestParam(required = false, defaultValue = "5") Integer row) {
		Map<String,Object> map = Tools.transBean2Map(record);
		return buttonService.findByCondition(map, offset, row);
	}

	/**
	 * 新增按钮
	 * 
	 * @param record
	 * @return NormalResult
	 * @author King
	 * @date 2018年11月7日
	 */
	@PostMapping("/addNew.action")
	public NormalResult inster(Button record) {
		User user = (User) SecurityUtils.getSubject().getPrincipal();
		record.setfClosed(1);
		record.setfBiller(user.getId());
		return buttonService.insertSelective(record);
	}
	
	/**
	 * 新增按钮与角色的关系
	 * 
	 * @param record
	 * @return NormalResult
	 * @author King
	 * @date 2018年11月7日
	 */
	@PostMapping("/addNewButtonAddRole.action")
	public NormalResult addNewButtonAddRole(Integer fRid ,String fBids) {
		
		return null;
	}

	/**
	 * 修改按钮
	 * 
	 * @param record
	 * @return NormalResult
	 * @author King
	 * @date 2018年11月7日
	 */
	@PostMapping("/updateButton.action")
	public NormalResult updateButton(Button record) {
		if (record.getId() == null) {
			return new NormalResult("9999", "id为空");
		}
		return buttonService.insertSelective(record);
	}

	/**
	 * 移除按钮
	 * 
	 * @param id
	 * @return NormalResult
	 * @author King
	 * @date 2018年11月7日
	 */
	@PostMapping("/removeButton.action")
	public NormalResult deleteButton(Integer id) {
		if (id == null) {
			return new NormalResult("9999", "id为空");
		}
		return buttonService.deleteByPrimaryKey(id);
	}

}
